// pages/personal/personal.js
const db = wx.cloud.database()
const app=getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    headImg:null,
    sex:null,
    nickname:null,
    name:null,
    phone:null,
    idcard:null,
    partymember:'否',
    multiSelectorValue:'',
    accounts: [ 
      {value:'male', label:'男'},
      {value:'female', label:'女'}
    ],
    customItem: '全部',
    region: ['广东省', '广州市', '海珠区'],
    party: [ 
      {value:'yes', label:'是'},
      {value:'no', label:'否'}
    ],
    multiSelectorData:[
      //第一列数据
      ['湖寮镇','枫朗镇','桃源镇','百侯镇'],
      //第二列数据
    ['蒲山村','蒲峰村','坑北村','尾坂村','乌石村','钟峰村',
    '大埔角村','东城村','墩背村','枫朗村','隔背村','黄沙坑村',
    '桃星村','新东村','团结村','桃锋村','上墩村','坪新村',
    '侯南村','侯北村','东山村','南山村'
  ],
  ],
  multiSelectorIndex:[0,0],
  },
onLoad(options){
    this.setData({
    headImg:app.globalData.userInfo.avatarUrl,
    nickname:app.globalData.userInfo.nickName
  })
this.getData();
},
//获取个人信息
getData(){
  db.collection('login_user').where({
    _openid:app.globalData.openid
  }).get().then(res=>{
    console.log(res.data[0]);
    this.setData({
      name:res.data[0].name,
      partymember:res.data[0].partymember,
      phone:res.data[0].phone,
      idcard:res.data[0].idcard,
      region:res.data[0].region,
      sex:res.data[0].sex,
      multiSelectorValue:res.data[0].town,
    })
  })
},
//切换性别值
bindSexChange(e){
      this.setData({
        sex: this.data.accounts[e.detail.value].label
      })
},
//切换地区
bindRegionChange: function (e) {
  console.log('picker发送选择改变，携带值为', e.detail.value)
  this.setData({
    region: e.detail.value
  })
},
//切换村社
columnChange(e){
  /** 1.准备数据 */
  let column1 ='湖寮镇、枫朗镇、桃源镇、百侯镇'; /** 第一列数据 */
  let column21 ='蒲山村、蒲峰村、坑北村、尾坂村、乌石村、钟峰村';  /** 第二列数据可选数据 */
  let column22 ='大埔角村、东城村、墩背村、枫朗村、隔背村、黄沙坑村';
  let column23 ='桃星村、新东村、团结村、桃锋村、上墩村、坪新村';
  let column24 ='侯南村、侯北村、东山村、南山村';
  /** 2.获取用户选择的数据 */
  let column = e.detail.column;
  let value = e.detail.value;
  /** 3.数据区的multiSelectorData、multiSelectorIndex是动态变量 修改数据区的引用数据类型将其赋给一个临时变量 */
  let tempData = this.data.multiSelectorData;
  let tempIndex = this.data.multiSelectorIndex;
  /** 4.记录用户所选 */
  tempIndex[column]=value;
  /** 5.核心业务逻辑 */
  switch(column){   /** 判断第几列发生变化 */
    case 0:   /** 第一列的值发生变化 */
      switch(value){   /** 判断第一列的值 */
        case 0:
          tempData[1] = column21.split('、');
          break;
        case 1:
          tempData[1] = column22.split('、');
          break;
          case 2:
            tempData[1] = column23.split('、');
            break;
            case 3:
              tempData[1] = column24.split('、');
              break;
      }
      tempIndex[1]=0;  /** 确保第二列在第一列发生变化后默认选中的是第一个值 */
      break;
  }
  /** 6.将临时变量给回数据区的动态变量 */
  this.setData({
    multiSelectorData:tempData,
    multiSelectorIndex:tempIndex
  })
},
multiSelectorChange(e){
  let res=this.data.multiSelectorData.map((item,index)=>{
    return item[e.detail.value[index]];
  })
  this.setData({
    multiSelectorValue:res.join('-')
  })
},

//切换党员身份
bindPartyChange(e){
  this.setData({
    partymember: this.data.party[e.detail.value].label
  })
},
//提交修改
submit(){
if(this.data.phone!=null){
  if(this.data.phone.length<8||(!/^\d+$/.test(parseInt(this.data.phone))||this.data.phone.length>11)){
    wx.showToast({
      title: '手机格式错误',
      icon: 'error',
      duration: 4000
    })
    return   
  }
}
if(this.data.idcard!=null){
  if(this.data.idcard.length<14||(!/^\d+$/.test(parseInt(this.data.idcard)))){
    wx.showToast({
      title: '身份证号格式错误',
      icon: 'error',
      duration: 2000
    })
    return
  }
}


  db.collection('login_user').where({
    _openid:app.globalData.openid
  }).update({
      data:{
        name:this.data.name,
        sex:this.data.sex,
        phone:this.data.phone,
        idcard:this.data.idcard,
        region:this.data.region,
        town:this.data.multiSelectorValue,
        partymember:this.data.partymember
    },
    success:(res)=>{
      wx.showToast({
        title: '修改成功！',
        icon: 'success',
        duration: 2000
      })
      setTimeout(()=>{
        wx.navigateBack({})
      },2000)
    }
  })
}
})